Communication devices and other computing devices (for example, personal computers, mobile telephones, electronic handheld devices, gaming consoles, or other similar devices) may communicate with a variety of periphery devices using communication standard. One such communication standard includes a Universal Serial Bus (USB) connection. Some examples of peripheral devices that may use a USB connection include keyboards, digital cameras, printers, personal media players, mass storage devices such as flash drives, network adapters, and external hard drives. For many of those devices, USB has become a very common communication standard that facilitates peripheral device connection.
USB devices generally operate using a standard protocol or interface, such as the interface set by a group of companies that developed a USB specification. USB devices may communicate with the host devices (for example, computers) utilizing an operating system without the need to install additional drivers or software onto the computer provided the instructions or requests used by the USB device are supported by the drivers resident on the host.
The USB devices can connect to a host device (for example, computers) either through a wired connection or through a wireless connection. The USB devices can connect to the host device wirelessly through communication channels. The communication channels may include relatively short-range communication channels, similar to Wi-Fi, Bluetooth, or the like.
A Wireless Serial Bus (WSB) is a Protocol Abstraction Layer (PAL) entity for running USB over Wi-Fi and handles the Wi-Fi related aspects of creating a USB connection such as discovery of USB devices managing the power and management of the connection. A Media Agnostic USB (MA-USB) is an entity that defines support to all USB transfer types like Bulk, interrupt, Isochronous and Control transfers and enumeration of USB devices. The MA-USB relies on medium specific PAL like WSB for the set up and handling of the underlying medium connectivity. The WSB and MA USB layers support client and Host roles. An Application Service Protocol (ASP) provides a framework for initiating and controlling a Wi-Fi direct P2P connection. The ASP supports deployment of services on the wireless medium. WSB can be deployed as a service on ASP. The primary steps involved in establishing a USB session over the wireless medium are as described herein. The WSB entity initiates the search for the peer WSB entity that may be a WSB host or a WSB client function. The underlying ASP layer initiates the discovery process. Once the counterpart entity (either WSB host or the WSB client) has been discovered and if needed, a pre association service discovery has been performed, the association and wireless connection between the two devices is established. When the connection between the two devices (WSB host and the WSB client) is established, the enumeration of the client device by the host device is performed by the MA USB host layer. This is followed by the configuration of the endpoints on the device that enables the device to be ready for data transfer.
Presently, Wi-Fi alliance has defined the Application Service Platform which allows services to advertise on its own and these services are discoverable over the air. In the existing system, the service discovery is mandatory and needs to be performed on all the USB device classes. The existing system allows adding the multiple hash values in case the device support multiple services. The service hash values are of 6 bytes in size.
Further, each individual service advertise itself to ASP (using the AdvertiseService primitive) with the full reverse DNS service name. A seeker device (WSB host) can seek a service using the SeekService primitive which includes the requested service name to be search on the air. The SeekService primitive triggers a Probe Request message which includes the service hash attribute. The ASP calculates the service hash for the service name using the 256 SHA 1 algorithm. In the Probe Request, only first six bytes will be sent over the air.
When the recipient device (WSB client) receives Probe Request, the WSB client matches the received hash with the registered services. Once the service hash is matched, a Probe Response is sent to the seeker device (WSB host). The Probe Response includes the matched full service name. Once the seeker (WSB host) receives the probe response (where the device discovery completes a7nd seeker device identifies the device and supported service), the seeker device needs to do service discovery with the all the searched devices in order to find out the detail information about the service. The seeker sends the Service discovery GAS request to request the details of the service and the WSB host replies with GAS response. The GAS response includes the details of the services for example, for send service it is role of the devices transmitter or receiver, serviced version number and so on.
In the existing system, when data transfer is ongoing between the WSB hose and the WSB client, the wireless connection may undergo transient connection losses. When the connection loss is experienced between the WSB host and the WSB client during the data transfer, the USB connection is torn down between the WSB host and the WSB client. The WSB host and the WSB client discover each other and a reenumeration of the WSB client is performed by the WSB host (and the configuration of endpoints) for continuation of data transfer, which is a timing consuming process. Further, a user may be frequently connecting to his/her peripheral devices wirelessly, which requires persistence behavior in the Wi-Fi service connection. In the existing system, the service discovery is mandatory and needs to be performed on all the USB device classes after discovering the device (for example, a USB peripheral). In the existing system, ASP (Wi-Fi P2P) architecture provides the P2P group level persistence, and it does not provide the service level persistence.